package araujoCoronelVillamayor.plantasVsZombies.domain

import org.junit.Assert
import org.junit.Before
import org.junit.Test
import araujoCoronelVillamayor.plantasVsZombies.appModelsArena.AtaqueAppModel
import araujoCoronelVillamayor.plantasVsZombies.appModelsArena.SesionAppModel

class TestMejora {
	FactoryPlantas factoryPlantas 
	Planta planta1
	
	FactoryMejoras factoryMejoras
	Mejora mejoraSilver1
	Mejora mejoraSilver2
	Mejora mejoraCrystal1

	AtaqueAppModel ataqueAppModel
	SesionAppModel sesionAppModel
	
	@Before
	def void init() {
		factoryPlantas = FactoryPlantas.instance
		factoryMejoras = FactoryMejoras.instance	
	}
	
	@Test
	def mejorarPlanta(){
		sesionAppModel = new SesionAppModel
		ataqueAppModel = new AtaqueAppModel(sesionAppModel)
		
		planta1 = factoryPlantas.crearShooter()
		Assert::assertEquals(4, planta1.poderAtaque)
		Assert::assertEquals(2, planta1.poderDefensa)
		
		mejoraSilver1 = factoryMejoras.crearMejoraSilver()
		planta1.agregarMejora(mejoraSilver1)
		Assert::assertEquals(5, planta1.poderAtaque)
		Assert::assertEquals(2, planta1.poderDefensa)
		
		mejoraSilver2 = factoryMejoras.crearMejoraSilver()
		planta1.agregarMejora(mejoraSilver2)
		Assert::assertEquals(6, planta1.poderAtaque)
		Assert::assertEquals(2, planta1.poderDefensa)
		
		mejoraCrystal1 = factoryMejoras.crearMejoraCrystal()
		planta1.agregarMejora(mejoraCrystal1)
		Assert::assertEquals(8, planta1.poderAtaque)
		Assert::assertEquals(4, planta1.poderDefensa)
	
		Assert::assertEquals(4, planta1.ataque)
		Assert::assertEquals(2, planta1.defensa)
	}
}